import { message } from 'antd';

export function onChange (e) {
    this.setState({
        inputValue: e.target.value,
    });
}

// 增
export function onCreate () {
    const newList = this.state.list.concat({
        id: this.idCount++,
        value: this.state.inputValue.trim(),
    });
    this.setState({
        // arr.concat(数组项或数组)
        list: newList,
        showingList: newList.concat(),
        // 清空输入框 提升用户体验（人人都是产品经理）
        inputValue: '',
    });
}

// 删除
export function onDelete (id) {
    this.setState(
        { 
            list: this.state.list.filter((item) => item.id !== id),
            showingList: this.state.showingList.filter((item) => item.id !== id),
        },
        () => {
            message.success('删除成功', 1);
        },
    );
}

// 修改
export function onEdit (id, currentValue) {
    this.setState({
        editingId: id,
    });
    this.editValue = currentValue;
}

// 修改确认
export function onEditOk (id) {
    this.setState({
        list: this.state.list.map(item => {
            if (id === item.id) {
                return {
                    id,
                    value: this.editValue,
                };
            }
            return item;
        }),
        showingList: this.state.showingList.map(item => {
            if (id === item.id) {
                return {
                    id,
                    value: this.editValue,
                };
            }
            return item;
        }),
        editingId: -1,
    });
}

// 查
export function onSearch () {
    this.setState({
        showingList: this.state.list.filter((item) => {
            return item.value.includes(this.state.inputValue);
        }),
        inputValue: '',
    });
}

// 将正在编辑的输入框的值记录下来  以便确认的时候使用
export function onEditChange (e) {
    this.editValue = e.target.value;
}
